#pragma once

#include "StateBase.h"


/*!
 * \brief State
 *
 * Action State
 */
class CState: public CStateBase
{
	DECLARE_RTTI_CLASS( CState, CStateBase::GetRTTI( ) );	

	//================================== METHODS ==============================

public:
	//! Constructor method
	CState(const CStateDataPtr &pStateData);
	//! Constructor method
	CState(const char_t *szName);	
	
protected:
	//! Update state
	virtual void DoUpdate(CStateResult *pResult);
};

//============================== TYPE DEFINITIONS =========================

//! State smart pointer
typedef SmartPtr<CState> CStatePtr;
